
dojo.provide("dojo.i18n.number");dojo.require("dojo.experimental");dojo.experimental("dojo.i18n.number");dojo.require("dojo.regexp");dojo.require("dojo.i18n.common");dojo.require("dojo.lang.common");dojo.i18n.number.format=function(value,flags,locale){flags=(typeof flags=="object")?flags:{};var formatData=dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE,locale);if(typeof flags.separator=="undefined"){flags.separator=formatData[1];}
if(typeof flags.decimal=="undefined"){flags.decimal=formatData[2];}
if(typeof flags.groupSize=="undefined"){flags.groupSize=formatData[3];}
if(typeof flags.groupSize2=="undefined"){flags.groupSize2=formatData[4];}
if(typeof flags.round=="undefined"){flags.round=true;}
if(typeof flags.signed=="undefined"){flags.signed=true;}
var output=(flags.signed&&(value<0))?"-":"";value=Math.abs(value);var whole=String((((flags.places>0)||!flags.round)?Math.floor:Math.round)(value));function splitSubstrings(str,count){for(var subs=[];str.length>=count;str=str.substr(0,str.length-count)){subs.push(str.substr(-count));}
if(str.length>0){subs.push(str);}
return subs.reverse();}
if(flags.groupSize2&&(whole.length>flags.groupSize)){var groups=splitSubstrings(whole.substr(0,whole.length-flags.groupSize),flags.groupSize2);groups.push(whole.substr(-flags.groupSize));output=output+groups.join(flags.separator);}else{if(flags.groupSize){output=output+splitSubstrings(whole,flags.groupSize).join(flags.separator);}else{output=output+whole;}}
if(flags.places>0){var fract=value-Math.floor(value);fract=(flags.round?Math.round:Math.floor)(fract*Math.pow(10,flags.places));output=output+flags.decimal+fract;}
return output;};dojo.i18n.number.parse=function(value,locale,flags){flags=(typeof flags=="object")?flags:{};var formatData=dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE,locale);if(typeof flags.separator=="undefined"){flags.separator=formatData[1];}
if(typeof flags.decimal=="undefined"){flags.decimal=formatData[2];}
if(typeof flags.groupSize=="undefined"){flags.groupSize=formatData[3];}
if(typeof flags.groupSize2=="undefined"){flags.groupSize2=formatData[4];}
if(typeof flags.validate=="undefined"){flags.validate=true;}
if(flags.validate&&!dojo.i18n.number.isReal(value,locale,flags)){return Number.NaN;}
var numbers=value.split(flags.decimal);if(numbers.length>2){return Number.NaN;}
var whole=Number(numbers[0].replace(new RegExp("\\"+flags.separator,"g"),""));var fract=(numbers.length==1)?0:Number(numbers[1])/Math.pow(10,String(numbers[1]).length);return whole+fract;};dojo.i18n.number.isInteger=function(value,locale,flags){flags=(typeof flags=="object")?flags:{};var formatData=dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE,locale);if(typeof flags.separator=="undefined"){flags.separator=formatData[1];}else{if(dojo.lang.isArray(flags.separator)&&flags.separator.length===0){flags.separator=[formatData[1],""];}}
if(typeof flags.groupSize=="undefined"){flags.groupSize=formatData[3];}
if(typeof flags.groupSize2=="undefined"){flags.groupSize2=formatData[4];}
var re=new RegExp("^"+dojo.regexp.integer(flags)+"$");return re.test(value);};dojo.i18n.number.isReal=function(value,locale,flags){flags=(typeof flags=="object")?flags:{};var formatData=dojo.i18n.number._mapToLocalizedFormatData(dojo.i18n.number.FORMAT_TABLE,locale);if(typeof flags.separator=="undefined"){flags.separator=formatData[1];}else{if(dojo.lang.isArray(flags.separator)&&flags.separator.length===0){flags.separator=[formatData[1],""];}}
if(typeof flags.decimal=="undefined"){flags.decimal=formatData[2];}
if(typeof flags.groupSize=="undefined"){flags.groupSize=formatData[3];}
if(typeof flags.groupSize2=="undefined"){flags.groupSize2=formatData[4];}
var re=new RegExp("^"+dojo.regexp.realNumber(flags)+"$");return re.test(value);};(function(){dojo.i18n.number.FORMAT_TABLE={"ar-ae":["","",",",1],"ar-bh":["","",",",1],"ar-dz":["","",",",1],"ar-eg":["","",",",1],"ar-jo":["","",",",1],"ar-kw":["","",",",1],"ar-lb":["","",",",1],"ar-ma":["","",",",1],"ar-om":["","",",",1],"ar-qa":["","",",",1],"ar-sa":["","",",",1],"ar-sy":["","",",",1],"ar-tn":["","",",",1],"ar-ye":["","",",",1],"cs-cz":[".",".",",",3],"da-dk":[".",".",",",3],"de-at":[".",".",",",3],"de-de":[".",".",",",3],"de-lu":[".",".",",",3],"de-ch":["'","'",".",3],"el-gr":[".",".",",",3],"en-au":[",",",",".",3],"en-ca":[",",",",".",3],"en-gb":[",",",",".",3],"en-hk":[",",",",".",3],"en-ie":[",",",",".",3],"en-in":[",",",",".",3,2],"en-nz":[",",",",".",3],"en-us":[",",",",".",3],"en-za":[",",",",".",3],"es-ar":[".",".",",",3],"es-bo":[".",".",",",3],"es-cl":[".",".",",",3],"es-co":[".",".",",",3],"es-cr":[".",".",",",3],"es-do":[".",".",",",3],"es-ec":[".",".",",",3],"es-es":[".",".",",",3],"es-gt":[",",",",".",3],"es-hn":[",",",",".",3],"es-mx":[",",",",".",3],"es-ni":[",",",",".",3],"es-pa":[",",",",".",3],"es-pe":[",",",",".",3],"es-pr":[",",",",".",3],"es-py":[".",".",",",3],"es-sv":[",",",",".",3],"es-uy":[".",".",",",3],"es-ve":[".",".",",",3],"fi-fi":[" "," ",",",3],"fr-be":[".",".",",",3],"fr-ca":[" "," ",",",3],"fr-ch":[" "," ",".",3],"fr-fr":[" "," ",",",3],"fr-lu":[".",".",",",3],"he-il":[",",",",".",3],"hu-hu":[" "," ",",",3],"it-ch":[" "," ",".",3],"it-it":[".",".",",",3],"ja-jp":[",",",",".",3],"ko-kr":[",",",",".",3],"no-no":[".",".",",",3],"nl-be":[" "," ",",",3],"nl-nl":[".",".",",",3],"pl-pl":[".",".",",",3],"pt-br":[".",".",",",3],"pt-pt":[".",".","$",3],"ru-ru":[" "," ",",",3],"sv-se":["."," ",",",3],"tr-tr":[".",".",",",3],"zh-cn":[",",",",".",3],"zh-hk":[",",",",".",3],"zh-tw":[",",",",".",3],"*":[",",",",".",3]};})();dojo.i18n.number._mapToLocalizedFormatData=function(table,locale){locale=dojo.hostenv.normalizeLocale(locale);var data=table[locale];if(typeof data=="undefined"){data=table["*"];}
return data;};